package com.jic.order.service;

import com.jic.common.base.vo.RestResult;
import com.jic.order.request.*;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.Map;

public interface OrderOperateService {

	/**
	 * 创建订单，返回父订单号
	 */
	RestResult<String> createOrder(CreateParentOrderRequest createParentOrderRequest);

	/**
	 * description: 秒杀订单创建
	 *
	 * @author: jackHe
	 * @time: 2020/8/19 18:25
	 */
	RestResult<String> createSpikeOrder(CreateSpikeOrderRequest request);

	/**
	 * description: 拼团订单创建
	 *
	 * @param request
	 * @author: jackHe
	 * @time: 2020/8/19 18:25
	 */
	RestResult<String> createJoinGroupOrder(CreateJoinGroupOrderRequest request);

	//付款
	RestResult<String> pay(FrontPayOrderRequest request);

	//取消订单
	RestResult<String> close(FrontCloseOrderRequest request);

	/**
	 * 手动转交货单
	 *
	 * @param handDeliverRequest
	 * @return 交货单号
	 */
	RestResult<String> handDeliver(HandDeliverRequest handDeliverRequest);

	//发货
	RestResult<String> sendGoods(SendGoodsRequest request);

	RestResult<String> confirmShip(FrontConfirmShipOrderRequest request);

	RestResult<String> audit(OrderAuditRequest request);

	//修改订单状态
	RestResult<String> modifyStatus(ModifyOrderStatusRequest request);

	Map queryOrderInfoOrList(ApiOrder apiOrder);
}
